package com.report.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.report.dto.request.InsightReq;
import com.report.dto.request.ReportFileReq;
import com.report.dto.response.*;
import com.report.entity.ReportFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author summer
 * @since 2024/06/25 14:54:57
 */
public interface IReportFileService extends IService<ReportFile> {

    /**
     * 保存专题
     * @param reportFileReq
     */
    void saveReportFile(ReportFileReq reportFileReq);

    /**
     * 查询列表
     * @param reportFileReq
     * @return
     */
    Page<SysReportFileRes> lists(ReportFileReq reportFileReq);

    /**
     * 查询单个数据
     * @param id
     * @return
     */
    SysReportFileRes findById(Integer id);

    /**
     * 首页查询专题列表
     * @param pageNum
     * @param pageSize
     * @return
     */
    Page<SpecialRes> specialList(Integer pageNum, Integer pageSize);

    /**
     * 查询专题详情
     * @param id
     * @return
     */
    SpecialRes findSpecialById(Integer id);

    /**
     * 查询专题详情合集
     * @param insightReq
     * @return
     */
    Page<ReportRes> findSpecialAndReportList(InsightReq insightReq);

    /**
     * 下载
     * @param id
     * @param response
     */
    void downloadVipReportFile(Integer id, HttpServletResponse response);

    /**
     * 小程序专题
     * @param id
     * @return
     */
    WechatMiniReportFileRes findSpecialListById(Integer id);

    /**
     *  小程序列表
     * @param reportFileReq
     * @return
     */
    Page<ReportFileRes> wechatSpecialList(ReportFileReq reportFileReq);

    /**
     * 专题查询
     * @param id
     * @return
     */
    List<ReportRes> vipReport(Integer id);
}
